:art: get_screen_data

huangqimin001 3 年之前
父节点
当前提交
2cdf2b052d
共有 2 个文件被更改,包括 10 次插入6 次删除
  1. 8 6
      api/eqpt_views.py
  2. 2 0
      equipment/models.py

+ 8 - 6
api/eqpt_views.py

@@ -219,11 +219,13 @@ def get_screen_data(point=None, point_id=None):
219 219
         macid__in=macids,
220 220
         status=True,
221 221
     ).values('macid', 'temperature', 'updated_at')
222
-    temperature_logs = {log.get('macid'): log.get('temperature') or get_old_temperature(point.point_id, log.get('macid')) for log in logs}
223
-    time_logs = {log.get('macid'): tc.local_string(utc_dt=log.get('updated_at'), format='%m-%d %H:%M') for log in logs}
222
+    temperature_logs = {log.get('macid'): log.get('temperature') for log in logs}
223
+    time_logs = {log.get('macid'): log.get('updated_at') for log in logs}
224 224
 
225 225
     ipuis = IsolationPointUserInfo.objects.filter(point_id=point.point_id, status=True).values('pk', 'fields', 'observed_days')
226
-    ipuis = {info.get('pk'): {'fields': info.get('fields'), 'observed_days': info.get('observed_days')} for info in ipuis}
226
+    # ipuis = {info.get('pk'): {'fields': info.get('fields'), 'observed_days': info.get('observed_days')} for info in ipuis}
227
+    ipuis_fields = {info.get('pk'): info.get('fields') for info in ipuis}
228
+    ipuis_observed_days = {info.get('pk'): info.get('observed_days') for info in ipuis}
227 229
 
228 230
     total_active_eqpt_num = eqpts.count()
229 231
     has_upload_temperature_num = len(temperature_logs)
@@ -232,8 +234,8 @@ def get_screen_data(point=None, point_id=None):
232 234
     eqpts = [{**eqpt.screen_data, **{
233 235
         'has_upload': eqpt.macid in temperature_logs,
234 236
         'temperature': temperature_logs.get(eqpt.macid, 0),
235
-        'observed_days': ipuis.get(eqpt.ipui_pk, {}).get('observed_days', 0),
236
-    }, **{field.get('key', ''): field.get('value', '') for field in ipuis.get(eqpt.ipui_pk, {}).get('fields', {})}} for eqpt in eqpts]
237
+        'observed_days': ipuis_observed_days.get(eqpt.ipui_pk, 0),
238
+    }, **{field.get('key', ''): field.get('value', '') for field in ipuis_fields.get(eqpt.ipui_pk, {})}} for eqpt in eqpts]
237 239
     reminds = [{
238 240
         'name': eqpt.get('name'),
239 241
         'room': eqpt.get('room'),
@@ -256,7 +258,7 @@ def get_screen_data(point=None, point_id=None):
256 258
         'phone': eqpt.get('phone', ''),
257 259
         'sex': eqpt.get('sex', ''),
258 260
         'age': eqpt.get('age', ''),
259
-        'temperature': eqpt.get('temperature', ''),
261
+        'temperature': eqpt.get('temperature', '') or get_old_temperature(eqpt.get('point_id', ''), eqpt.get('macid', '')),
260 262
         'status': '已上报' if eqpt.get('temperature') else '未上报',
261 263
         'last_report_time': time_logs.get(eqpt.get('macid', ''), '') if eqpt.get('temperature') else eqpt.get('last_submit_at', ''),
262 264
         'observed_days': eqpt.get('observed_days', 0),

+ 2 - 0
equipment/models.py

@@ -251,6 +251,7 @@ class ThermometerEquipmentInfo(BaseModelMixin):
251 251
     @property
252 252
     def screen_data(self):
253 253
         return {
254
+            'point_id': self.point_id,
254 255
             'macid': self.macid,
255 256
             'remark': self.remark,
256 257
             'last_submit_at': tc.local_string(utc_dt=self.last_submit_at, format='%m-%d %H:%M'),
@@ -287,6 +288,7 @@ class ThermometerMeasureInfo(BaseModelMixin):
287 288
             'macid': self.macid,
288 289
             'sn': self.sn,
289 290
             'temperature': self.temperature,
291
+            'updated_at': tc.local_string(utc_dt=self.updated_at, format='%m-%d %H:%M'),
290 292
         }
291 293
 
292 294